from shell.aishell import AiShell
from agent import Agent
from codeagent import CodeAgent

print("测试主程序初始化...")

try:
    # 初始化所有组件
    shell = AiShell()
    agent = Agent()
    code_agent = CodeAgent()
    
    # 设置到shell中
    shell.setAgent(agent)
    shell.setCodeAgent(code_agent)
    
    print("✓ 主程序初始化成功")
    print(f"✓ 普通Agent: {agent.name()}")
    print(f"✓ 代码Agent: {code_agent.name()}")
    print(f"✓ 代码Agent工具数量: {len(code_agent.code_tools.tools)}")
    
    # 测试模式切换
    print("\n测试模式切换...")
    print(f"当前模式: {shell.current_mode}")
    print(f"当前提示符: {shell.prompt}")
    
    # 模拟切换到代码模式
    shell.do_code("")
    print(f"切换后模式: {shell.current_mode}")
    print(f"切换后提示符: {shell.prompt}")
    
    # 模拟切换回普通模式
    shell.do_normal("")
    print(f"切回模式: {shell.current_mode}")
    print(f"切回提示符: {shell.prompt}")
    
    print("\n✓ 所有测试通过！代码Agent已成功集成到主程序中")
    
except Exception as e:
    print(f"✗ 初始化失败: {str(e)}")
    import traceback
    traceback.print_exc()